#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

//typedef struct llsort
//{
//	int s;
//	struct llsort* next;
//	struct llsort* prev;
//}lsort;
//
//lsort* opensort( int x)
//{
//	lsort* newnode = (lsort*)malloc(sizeof(lsort));
//	newnode->s = x;
//	return newnode;
//}
//
//void my_sort(lsort* ll, int x)
//{
//	lsort* newnode = opensort(x);
//	lsort* p = ll->next;
//	lsort* pp = p->next;
//	if (p == ll)
//	{
//		ll->next = newnode;
//		newnode->prev = ll;
//		ll->prev = newnode;
//		newnode->next = ll;
//		return;
//	}
//	while (p != ll)
//	{
//		if (p->s < x && pp->s > x)
//		{
//			p->next = newnode;
//			newnode->prev = p;
//			newnode->next = pp;
//			pp->prev = newnode;
//			return;
//		}
//		p = p->next;
//		pp = p->next;
//	}
//	p = ll->prev;
//	p->next = newnode;
//	newnode->prev = p;
//	newnode->next = ll;
//	ll->prev = newnode;
//}
//void print(lsort* ll)
//{
//	lsort* p = ll->next;
//	while (p != ll)
//	{
//		printf("%d->", p->s);
//		p = p->next;
//	}
//	printf("\n");
//}
//void testsort()
//{
//	lsort* ll = opensort(0);
//	ll->next = ll;
//	ll->prev = ll;
//	int x;
//	while (scanf("%d", &x) == 1)
//	{
//		my_sort(ll, x);
//		print(ll);
//	}
//}
//
//int main()
//{
//	testsort();
//	return 0;
//}


//typedef struct s1
//{
//	int x;
//	struct s1* next;
//}s1;
//
//void testk()
//{
//	s1* p = NULL;
//
//}
//
//int main()
//{
//	testk();
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
//	for (i = 0; i <= 12; i++)
//	{
//		arr[i] = 0;
//		printf("hellow bit\n");
//	}
//	return 0;
//}

//void my_sort(int* arr, int sz)
//{
//	int right = sz - 1;
//	int left = 0;
//	while (left < right)
//	{
//		if (arr[right] % 2 == 1 && arr[left] % 2 == 0)
//		{
//			int t = arr[left];
//			arr[left] = arr[right];
//			arr[right] = t;
//			left++;
//			right--;
//		}
//		else if (arr[right] % 2 == 1 && arr[left] % 2 != 0)
//		{
//			left++;
//		}
//		else if (arr[right] % 2 != 1 && arr[left] % 2 == 0)
//		{
//			right--;
//		}
//		else if (arr[right] % 2 != 1 && arr[left] % 2 != 0)
//		{
//			left++;
//			right--;
//		}
//	}
//}
//
//int main()
//{
//	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	my_sort(arr, sz);
//	for (int i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	return 0;
//}

int main()
{
	int a, b;
	while (scanf("%d %d", &a, &b) == 2)
	{
		int x = a;
		int y = b;
		while (y)
		{
			int z = x % y;
			x = y;
			y = z;
		}
		printf("%d\n", x);
		
	}
	return 0;
}